package demo33;

import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;

public class ConcurrentQueue {
    public static void main(String[] args) {
        Queue<String> strs = new ConcurrentLinkedQueue<>();   //还有双端队列...Deque
        for (int i = 0; i < 10; i++) {
            //类似于add方法，如果是ArrayQueue，add方法可能会抛异常，但是offer方法不会抛异常，返回boolean类型即是否添加成功
            //strs.add("a" + i);
            strs.offer("a" + i);
        }
        System.out.println(strs);  //[a0, a1, a2, a3, a4, a5, a6, a7, a8, a9]
        System.out.println("队列原始大小：" + strs.size());   //队列原始大小：10
        //poll方法表示从头上拿出一个删掉；peek方法表示从头上拿出一个用一下不删。
        System.out.println("poll " + strs.poll() + "后的大小为：" + strs.size()); //poll a0后的大小为：9
        System.out.println("peek " + strs.peek() + "后的大小为：" + strs.size()); //peek a1后的大小为：9
    }
}